cloudflare pagers反代博客去除端口号

cloudflare pagers反代博客去除端口号

由于近期zf的GFW力度加大,workers的域名已经被污染了。只是利用workers.dev的域名大概率出现无法访问。这里讲解一下在CloudFlare Pages利用其Functions部署反代的思路,可以共大家借鉴。实例为反代本网站。理论上任何域名都可以,也包括节点域名
1.准备文件,文件命名为_worker.js,内容如下:

export default {
async fetch(request, env) {
const incomingUrl = new URL(request.url);

// 如果是要反代的路径,统一处理
if (incomingUrl.pathname.startsWith('/')) {
// 构造目标地址(带端口)
const targetOrigin = "shyper.cf";
const targetUrl = new URL(incomingUrl.pathname + incomingUrl.search, targetOrigin);

// 克隆原始请求
const proxyRequest = new Request(targetUrl, {
method: request.method,
headers: request.headers,
body: request.body,
redirect: "follow",
});

// 执行反代请求
const response = await fetch(proxyRequest);

// 可选:为前端跨域请求添加 CORS headers
const newHeaders = new Headers(response.headers);
newHeaders.set("Access-Control-Allow-Origin", "*");
newHeaders.set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
newHeaders.set("Access-Control-Allow-Headers", "*");

return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers: newHeaders,
});
}

// 非反代请求,走静态资源(如有)
return env.ASSETS.fetch(request);
}
};